Automated Upgrading of Component - Based Applications

نویسندگان

  • Darko Marinov
  • David Bruton
چکیده

Software developers like to reuse software components such as libraries or frameworks because it lets them build a system more quickly, but then the system depends on the components that they reused. Ideally, the programming interface (API) to a component never changes. In practice, components change their APIs. Upgrading an application to the new API is error-prone, tedious, and disruptive to the development process. Although some tools and ideas have been proposed to solve the evolution of APIs, most upgrades are done manually. This makes maintaining software expensive. Our goal is to automate the upgrading and make it practical. Our study of the API changes in five components revealed that over 80% of the changes that break existing applications are caused by refactorings. Refactorings are program transformations that improve the structure of existing components. We suggest that refactoring-based upgrading tools can be used to effectively upgrade applications. We propose an approach that is both automated and safe, without any overhead on the component producers. First, component refactorings are automatically detected (either inferred or recorded), then they are incorporated into applications by replaying. This is the process used to automate the upgrading of applications: along with the new version of the component, component developers ship the log of refactorings applied to create the new version. An application developer can then upgrade the application to the new version by using a refactoring tool to replay the log of refactorings. We developed a toolset to automatically upgrade applications in response to component refactorings. First, we developed a record-and-replay extension to a refactoring engine which records component refactorings and replays them on the applications. To handle those cases when component refactorings are not recorded, we developed RefactoringCrawler, a tool that detects refactorings in Java components. The empirical evaluation of RefactoringCrawler shows that it scales to real-world components, and its accuracy in detecting refactorings is over 85%, a significant improvement over existing solutions. Not only components evolve, but applications evolve too. Besides refactorings, components and applica-

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Dual Space Control of a Deployable Cable Driven Robot: Wave Based Approach

Known for their lower costs and numerous applications, cable robots are an attractive research field in robotic community. However, considering the fact that they require an accurate installation procedure and calibration routine, they have not yet found their true place in real-world applications. This paper aims to propose a new controller strategy that requires no meticulous calibration and ...

متن کامل

A Prototype of Upgrading Bepc Control System

We will use EPICS toolkit [1] to build a prototype for upgrading BEPC control system. The purposes are threefold: (1) Setup a network based distributed control system with EPICS. (2) Study some front-end control technology. (3) Merge the existing control systems into EPICS. The hardware architecture consists of three physical layers. The front-end layer consists of VME crate, PowerPC, VME I/O m...

متن کامل

Logistics and pretreatment of forest biomass

In large regions of the world, biomass is a very important source of energy. The global bioenergy market based on forest biomass is growing rapidly. About 92 % of the bioenergy in Sweden comes from forests. Biomass from forests is not homogenous. The locations, transport distances, and transport methods, can differ very much and the industries that need biomass as input prefer raw materials wit...

متن کامل

Toward Automatic Upgrading of Component-Based Applications

Frameworks and libraries change their APIs. Migrating an application to the new API is tedious and disrupts the development process. Although some tools and ideas have been proposed to solve the evolution of APIs, most updates are done manually. Our goal is to reduce the burden of reuse on maintenance by reducing the cost of adapting to change. We studied the API changes of five components and ...

متن کامل

Barcode Detection with Morphological Operations and Clustering

Barcode detection has many applications and detection methods. Each application has its own requirements for speed and detection accuracy. Fine-tuning, upgrading or combining existing methods gives fast and robust solutions for detection. Modern computer vision techniques help the whole process to be fully automated. Different detection approaches are examined in this paper, and new methods are...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2007